<!DOCTYPE html>
<html lang="en">

<!-- Head tag -->
<head><meta name="generator" content="Hexo 3.9.0">

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!--Description-->
    
        <meta name="description" content="机器学习什么是机器学习？
机器学习是从数据中自动分析获得规律(模型)，并利用规律对未知数据进行预测

机器学习存在的目的和价值领域？
领域：
医疗、航空、教育、物流、电商 等。。。


目的：
让机器学习程序替换手动的步骤，减少企业的成本也提高企业的效率



jupyter lab语法使用jupy">
    

    <!--Author-->
    
        <meta name="author" content="ck">
    

    <!--Open Graph Title-->
    
        <meta property="og:title" content="机器学习三剑客之pandas+numpy">
    

    <!--Open Graph Description-->
    

    <!--Open Graph Site Name-->
    <meta property="og:site_name" content="CK">

    <!--Type page-->
    
        <meta property="og:type" content="article">
    

    <!--Page Cover-->
    

    <meta name="twitter:card" content="summary">
    

    <!-- Title -->
    
    <title>机器学习三剑客之pandas+numpy - CK</title>

    <!-- Bootstrap Core CSS -->
    <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.2/css/bootstrap.min.css" integrity="sha384-y3tfxAZXuh4HwSYylfB+J125MxIs6mR5FOHamPBG064zB+AFeWH94NdvaCBm8qnd" crossorigin="anonymous">

    <!-- Custom Fonts -->
    <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" type="text/css">

    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
        <script src="//oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
        <script src="//oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->

    <!-- Gallery -->
    <link href="//cdnjs.cloudflare.com/ajax/libs/featherlight/1.3.5/featherlight.min.css" type="text/css" rel="stylesheet">

    <!-- Custom CSS -->
    <link rel="stylesheet" href="/blog/css/style.css">

    <!-- Google Analytics -->
    


</head>


<body>

<div class="bg-gradient"></div>
<div class="bg-pattern"></div>

<!-- Menu -->
<!--Menu Links and Overlay-->
<div class="menu-bg">
    <div class="menu-container">
        <ul>
            
            <li class="menu-item">
                <a href="/blog/">
                    Home
                </a>
            </li>
            
            <li class="menu-item">
                <a href="/blog/archives">
                    Archives
                </a>
            </li>
            
            <li class="menu-item">
                <a href="/blog/about.html">
                    About
                </a>
            </li>
            
            <li class="menu-item">
                <a href="/blog/tags">
                    Tags
                </a>
            </li>
            
            <li class="menu-item">
                <a href="/blog/categories">
                    Categories
                </a>
            </li>
            
            <li class="menu-item">
                <a href="/blog/contact.html">
                    Contact
                </a>
            </li>
            
        </ul>
    </div>
</div>

<!--Hamburger Icon-->
<nav>
    <a href="#menu"></a>
</nav>

<div class="container">

    <!-- Main Content -->
    <div class="row">
    <div class="col-sm-12">

        <!--Title and Logo-->
        <header>
    <div class="logo">
        <a href="/blog/"><i class="logo-icon fa fa-cube" aria-hidden="true"></i></a>
        
    </div>
</header>

        <section class="main">
            
<div class="post">

    <div class="post-header">
        <h1 class="title">
            <a href="/blog/2019/08/12/机器学习三剑客之pandas-numpy/">
                机器学习三剑客之pandas+numpy
            </a>
        </h1>
        <div class="post-info">
            
                <span class="date">2019-08-12</span>
            
            
            
        </div>
    </div>

    <div class="content">

        <!-- Gallery -->
        

        <!-- Post Content -->
        <h1 id="机器学习"><a href="#机器学习" class="headerlink" title="机器学习"></a>机器学习</h1><h2 id="什么是机器学习？"><a href="#什么是机器学习？" class="headerlink" title="什么是机器学习？"></a>什么是机器学习？</h2><ul>
<li>机器学习是从数据中自动分析获得规律(模型)，并利用规律对未知数据进行预测</li>
</ul>
<h2 id="机器学习存在的目的和价值领域？"><a href="#机器学习存在的目的和价值领域？" class="headerlink" title="机器学习存在的目的和价值领域？"></a>机器学习存在的目的和价值领域？</h2><ul>
<li><h4 id="领域："><a href="#领域：" class="headerlink" title="领域："></a>领域：</h4><ul>
<li>医疗、航空、教育、物流、电商 等。。。</li>
</ul>
</li>
<li><h4 id="目的："><a href="#目的：" class="headerlink" title="目的："></a>目的：</h4><ul>
<li>让机器学习程序替换手动的步骤，减少企业的成本也提高企业的效率</li>
</ul>
</li>
</ul>
<h1 id="jupyter-lab语法使用"><a href="#jupyter-lab语法使用" class="headerlink" title="jupyter lab语法使用"></a><code>jupyter lab</code>语法使用</h1><h1 id="jupyter-lab安装"><a href="#jupyter-lab安装" class="headerlink" title="jupyter lab安装"></a><code>jupyter lab安装</code></h1><p> 命令：pip install jupyterlab</p>
<p>接下来了解下机器学习三剑客的前两位 numpy + pandas 的使用</p>
<p>一、区别<br>Numpy:是数值计算的扩展包，它能高效处理N维数组,复杂函数,线性代数.</p>
<p>Panadas:是做数据处理。市python的一个数据分析包,<br>二、简介<br>1）NumPy：N维数组容器</p>
<p>Numpy专门针对ndarray的操作和运算进行了设计，所以数组的存储效率和输入输出性能远优于Python中的嵌套列表，数组越大，Numpy的优势就越明显。Numpy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵，比Python自身的嵌套列表（nested list structure)结构要高效的多（该结构也可以用来表示矩阵（matrix））。据说NumPy将Python相当于变成一种免费的更强大的MatLab系统。</p>
<p>1.ndarray的优势<br>NumPy提供了一个N维数组类型ndarray，它描述了相同类型的“items”的集合。</p>
<p>一、内存块风格:</p>
<p>这是因为ndarray中的所有元素的类型都是相同的，而Python列表中的元素类型是任意的，所以ndarray在存储元素时内存可以连续，而python原生lis就t只能通过寻址方式找到下一个元素，这虽然也导致了在通用性能方面Numpy的ndarray不及Python原生list，但在科学计算中，Numpy的ndarray就可以省掉很多循环语句，代码使用方面比Python原生list简单的多。</p>
<p>二、ndarray支持并行化运算（向量化运算）</p>
<p>三、Numpy底层使用C语言编写，内部解除了GIL（全局解释器锁），其对数组的操作速度不受Python解释器的限制，效率远高于纯Python代码。</p>
<p>2.Pandas：表格容器<br>pansdas是基于Numpy的一种工具,该工具是为了解决数据分析任务而创建的,。Pandas 纳入了大量库和一些标准的数据模型，提供了高效地操作大型数据集所需的工具。pandas提供了大量快速便捷地处理数据的函数和方法。使Python成为强大而高效的数据分析环境的重要因素之一。<br>-——————–<br>作者：愤怒的马农<br>来源：CSDN<br>原文：<a href="https://blog.csdn.net/weixin_43407092/article/details/89575559" target="_blank" rel="noopener">https://blog.csdn.net/weixin_43407092/article/details/89575559</a><br>版权声明：本文为博主原创文章，转载请附上博文链接！</p>
<h1 id="numpy"><a href="#numpy" class="headerlink" title="numpy"></a><code>numpy</code></h1><h2 id="模块导包"><a href="#模块导包" class="headerlink" title="模块导包"></a>模块导包</h2><ul>
<li><p><code>import numpy as np</code></p>
<ul>
<li>导入<code>numpy</code> 起别名为np</li>
</ul>
</li>
<li><p>列举表格数据</p>
</li>
</ul>
<h2 id="pandas-读取工具"><a href="#pandas-读取工具" class="headerlink" title="pandas : 读取工具"></a>pandas : 读取工具</h2><ul>
<li><h5 id="numpy：释放了GIL锁"><a href="#numpy：释放了GIL锁" class="headerlink" title="numpy：释放了GIL锁"></a><code>numpy</code>：释放了GIL锁</h5><ul>
<li>真正实现了多线程</li>
<li>一些库运行的比较快或计算能力强，一部分原因就是因为<code>numpy</code></li>
</ul>
</li>
<li><h5 id="GIL锁历史遗留问题"><a href="#GIL锁历史遗留问题" class="headerlink" title="GIL锁历史遗留问题"></a>GIL锁历史遗留问题</h5><ul>
<li><p><code>cpython</code> 加了GIL锁</p>
</li>
<li><p><code>jpython</code> 没有GIL锁，（常用）所以不存在遗留问题</p>
</li>
</ul>
</li>
</ul>
<h2 id="数据类型-—–-gt-numpy-ndarray"><a href="#数据类型-—–-gt-numpy-ndarray" class="headerlink" title="数据类型 —–&gt; numpy.ndarray"></a>数据类型 —–&gt; <code>numpy.ndarray</code></h2><h3 id="维度数据"><a href="#维度数据" class="headerlink" title="维度数据"></a>维度数据</h3><ul>
<li><code>np.arange(1000)</code> # 遍历 与for循环range相同作用 生成<code>1-999</code>数据</li>
<li><code>np.array([1,2,3])</code> # 一维数据</li>
<li><code>np.array([[1,2,3],[11,22,33]])</code> # 二维数据</li>
<li><code>np.array([[[1,2,3],[11,22,33]]])</code> # 三维数据</li>
</ul>
<h3 id="维度"><a href="#维度" class="headerlink" title="维度"></a>维度</h3><ul>
<li>维度相当于，多层内包含列表(数组)的数据</li>
<li>超过一维单独存在数据，默认为一维</li>
<li>父级每多一层，维度加一</li>
<li>单个子级每多一层，单个维度层级加一</li>
</ul>
<h3 id="查看维度详情"><a href="#查看维度详情" class="headerlink" title="查看维度详情"></a>查看维度详情</h3><ul>
<li>语法:—–&gt;<code>结果变量.shape</code><ul>
<li>如结果 array([1, 2, 3])<ul>
<li>表示一维3个，二维2个，三维1个数据</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3 id="查看数据维度是几维"><a href="#查看数据维度是几维" class="headerlink" title="查看数据维度是几维"></a>查看数据维度是几维</h3><ul>
<li>语法:—–&gt;<code>结果变量.ndim</code><ul>
<li>结果 是管与结果是几维的 维度数字</li>
</ul>
</li>
</ul>
<h3 id="改变维度"><a href="#改变维度" class="headerlink" title="改变维度"></a>改变维度</h3><ul>
<li>语法:—–&gt;<code>结果.reshape(数值1,数值2)</code><ul>
<li>结果 变为二维 结果为：一个大列表，数值1个数的子列表，子列表内数值2个数的数据<ul>
<li>小总结:可根据需求维度设置多个参数，() 内参数总个数是维度，每个参数依次是每个维度的数据个数</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3 id="生成数据"><a href="#生成数据" class="headerlink" title="生成数据"></a>生成数据</h3><h4 id="生成正太分布数据"><a href="#生成正太分布数据" class="headerlink" title="生成正太分布数据"></a>生成正太分布数据</h4><ul>
<li>语法:—–&gt;<code>np.linspace(起始值,结束值,生成几个数值)</code><ul>
<li>在区间内(括号内前两个参数)生成几个数，间隔区间大小相同，并且都是float64(浮点)类型</li>
</ul>
</li>
<li>把<code>均值为0</code> <code>方差为1</code>的数据分布称为标准正态分布<ul>
<li>例<code>np.random.normal(loc=0,scale=1,size=(2000,3000))</code></li>
</ul>
</li>
<li>正太分布数据<ul>
<li><code>np.random.randn(10)</code></li>
</ul>
</li>
</ul>
<h4 id="生成指定维度，数据随机"><a href="#生成指定维度，数据随机" class="headerlink" title="生成指定维度，数据随机"></a>生成指定维度，数据随机</h4><ul>
<li>语法:—–&gt; <code>np.random.rangint(0,15,size=(5,3))</code><ul>
<li>区间0~14，维度详情指定二维，二维数据5组，一维3组</li>
</ul>
</li>
</ul>
<h4 id="手写指定维度"><a href="#手写指定维度" class="headerlink" title="手写指定维度"></a>手写指定维度</h4><ul>
<li>语法:—–&gt; <code>np.array([[1,2,3],[11,22,33],[1,2,3],[11,22,33],[1,2,3]])</code><ul>
<li>二维 5*3 数据</li>
</ul>
</li>
</ul>
<h4 id="遍历改变维度，生成指定维度"><a href="#遍历改变维度，生成指定维度" class="headerlink" title="遍历改变维度，生成指定维度"></a>遍历改变维度，生成指定维度</h4><ul>
<li>语法:—–&gt; <code>np.arange(12).reshape(4,3)</code><ul>
<li>遍历数值，然后改变维度 二维 4*3数据</li>
</ul>
</li>
</ul>
<h3 id="随机种子，固定随机值"><a href="#随机种子，固定随机值" class="headerlink" title="随机种子，固定随机值"></a>随机种子，固定随机值</h3><ul>
<li><p><code>np.random.seed(10)</code> # 固定的随机值必须是随机数区间内的数值，不然无效</p>
<ul>
<li><code>a = np.random.randint(10,20,size=(5,3))</code> # 每个 一维数据内 能生成一个固定随机值</li>
</ul>
</li>
<li><p>输出展示详情，分析变化</p>
<ul>
<li><p><code>print(&#39;维度:{}&#39;.format(a.ndim))</code></p>
</li>
<li><p><code>print(&#39;大小:{}&#39;.format(a.size))</code></p>
</li>
<li><p><code>print(&#39;尺寸:{}&#39;.format(a.shape))</code></p>
</li>
</ul>
</li>
</ul>
<h2 id="求值"><a href="#求值" class="headerlink" title="求值"></a>求值</h2><h3 id="平均值"><a href="#平均值" class="headerlink" title="平均值"></a>平均值</h3><ul>
<li>语法:—–&gt; <code>np.mean(结果变量)</code></li>
</ul>
<h3 id="绝对值"><a href="#绝对值" class="headerlink" title="绝对值"></a>绝对值</h3><ul>
<li>语法:—–&gt; <code>np.abs(结果变量)</code></li>
</ul>
<h3 id="数量值"><a href="#数量值" class="headerlink" title="数量值"></a>数量值</h3><ul>
<li>语法:—–&gt; <code>count()</code></li>
</ul>
<h3 id="索引值"><a href="#索引值" class="headerlink" title="索引值"></a>索引值</h3><ul>
<li>计算能获取到最大值和最小值的索引(整数)<ul>
<li>语法:—–&gt; <code>argmax</code> 和 <code>argmin</code></li>
</ul>
</li>
<li>计算能获取到最大值和最小值的索引<ul>
<li>语法:—–&gt; <code>idmax</code> 和 <code>idmin</code></li>
</ul>
</li>
</ul>
<h3 id="求和"><a href="#求和" class="headerlink" title="求和"></a>求和</h3><ul>
<li>语法:—–&gt; <code>np.sum(结果变量)</code></li>
</ul>
<h3 id="最大值"><a href="#最大值" class="headerlink" title="最大值"></a>最大值</h3><ul>
<li>语法:—–&gt; <code>np.max(结果变量)</code></li>
</ul>
<h3 id="最小值"><a href="#最小值" class="headerlink" title="最小值"></a>最小值</h3><ul>
<li>语法:—–&gt; <code>np.min(结果变量)</code></li>
</ul>
<h3 id="返回累乘积值"><a href="#返回累乘积值" class="headerlink" title="返回累乘积值"></a>返回累乘积值</h3><ul>
<li>语法:—–&gt; <code>np.cumprod()</code></li>
</ul>
<h3 id="返回累加值"><a href="#返回累加值" class="headerlink" title="返回累加值"></a>返回累加值</h3><ul>
<li>语法:—–&gt; <code>np.cumsum()</code></li>
</ul>
<h2 id="标准差"><a href="#标准差" class="headerlink" title="标准差"></a>标准差</h2><h3 id="什么是标准差？"><a href="#什么是标准差？" class="headerlink" title="什么是标准差？"></a>什么是标准差？</h3><ul>
<li>在概率统计中最常使用作为统计分布程度上的测量。标准差定义是总体各单位标准值与其平均数离差平方的算术平均数的平方根。它反映组内个体间的离散程度。</li>
<li>简单来说，标准差是一组数据平均值分散程度的一种度量。一个较大的标准差，代表大部分数值和其平均值之间差异较大；一个较小的标准差，代表这些数值较接近平均值。</li>
</ul>
<h3 id="求标准差"><a href="#求标准差" class="headerlink" title="求标准差"></a>求标准差</h3><ul>
<li>语法:—–&gt; <code>np.stb(结果变量)</code></li>
</ul>
<h2 id="方差"><a href="#方差" class="headerlink" title="方差"></a>方差</h2><h3 id="什么是方差？"><a href="#什么是方差？" class="headerlink" title="什么是方差？"></a>什么是方差？</h3><ul>
<li>方差用来计算每一个变量（观察值）与总体均数之间的差异。<ul>
<li>为避免出现离均差总和为零，离均差平方和受样本含量的影响，统计学采用平均离均差平方和来描述变量的变异程度。是标准差的平方。</li>
</ul>
</li>
</ul>
<h3 id="求方差"><a href="#求方差" class="headerlink" title="求方差"></a>求方差</h3><ul>
<li>语法:—–&gt; <code>np.val(结果变量)</code></li>
</ul>
<h2 id="切片、索引"><a href="#切片、索引" class="headerlink" title="切片、索引"></a>切片、索引</h2><ul>
<li>指定数据<ul>
<li>根据索引操作，按照普通列表去下标</li>
</ul>
</li>
<li>切片<ul>
<li>语法 —-&gt; <code>结果变量[取哪条][起始位置:结束位置:间隔步数]</code></li>
<li>语法 —-&gt; <code>结果变量[起始位置:结束位置,:数值]</code><ul>
<li>数值 在：之前去除数值列展示，之后再：之后只展示数值列</li>
</ul>
</li>
</ul>
</li>
</ul>
<h1 id="pandas"><a href="#pandas" class="headerlink" title="pandas"></a><code>pandas</code></h1><h2 id="模块导包-1"><a href="#模块导包-1" class="headerlink" title="模块导包"></a>模块导包</h2><ul>
<li><code>import pandas as pd</code><ul>
<li>导入<code>pandas</code> 起别名为<code>pd</code></li>
</ul>
</li>
</ul>
<h2 id="Series"><a href="#Series" class="headerlink" title="Series"></a><code>Series</code></h2><ul>
<li><h3 id="存放一维度数据"><a href="#存放一维度数据" class="headerlink" title="存放一维度数据"></a>存放一维度数据</h3></li>
<li><p>通过list构建Series</p>
<ul>
<li><code>data = pd.Series([1,2,3,4,5,6,7])</code></li>
</ul>
</li>
<li><p>通过range函数，构建Series</p>
<ul>
<li><code>data = pd.Series(range(10,20))</code></li>
</ul>
</li>
</ul>
<h2 id="DataFrame"><a href="#DataFrame" class="headerlink" title="DataFrame"></a><code>DataFrame</code></h2><ul>
<li><h3 id="存放二维度数据"><a href="#存放二维度数据" class="headerlink" title="存放二维度数据"></a>存放二维度数据</h3></li>
<li><p>随机种子，固定随机值为10</p>
<ul>
<li><code>np.random.seed(10)</code></li>
</ul>
</li>
<li><p>随机生成一组5*3 二维数据</p>
<ul>
<li><code>data = np.random.randint(10,20,size=(5,3))</code></li>
</ul>
</li>
<li><p><code>DataFrame</code>存放二维数据</p>
<ul>
<li><code>df_data = pd.DataFrame(data)</code></li>
</ul>
</li>
<li><p><code>columns=[列数相同的值]</code> 给每列起别名</p>
<ul>
<li><code>df_data .columns=[&#39;A&#39;,&#39;B&#39;,&#39;C&#39;]</code></li>
</ul>
</li>
</ul>
<h2 id="删除"><a href="#删除" class="headerlink" title="删除"></a>删除</h2><ul>
<li><p>直接删除整行</p>
<ul>
<li><code>data.drop(索引)``data.drop(索引,inplace=True)</code> <code>inplace=True</code>修改原数据</li>
</ul>
</li>
<li><p>直接删除多行</p>
<ul>
<li><code>data.drop([索引,索引。。。])</code></li>
</ul>
</li>
</ul>
<h2 id="合并"><a href="#合并" class="headerlink" title="合并"></a>合并</h2><ul>
<li><p>小例子：</p>
<ul>
<li><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">data1 = np.array([[1,2,3],[11,22,33],[1,2,3],[11,22,33],[1,2,3]]) # 5*3</span><br><span class="line">data2 = np.arange(12).reshape(4,3)      # 4*3 </span><br><span class="line">data3 = np.random.randint(10,20,size=(4,3))  # 生成制定5*3维度，随机生成数字</span><br><span class="line">data4 = np.random.randint(10,20,size=(4,5))   # 4*5</span><br><span class="line"></span><br><span class="line"># r_ 列合并 c_ 行合并 不符合 会报错</span><br><span class="line">data5 = np.r_[data1,data2]  # r_ 合并 列个数相同  才能合并  5*3  &lt;---&gt;  4*3 否则报错</span><br><span class="line">data6 = np.c_[data3,data4]  # c_ 合并 行个数相同  才能合并  4*3  &lt;---&gt;  4*5 否则报错</span><br></pre></td></tr></table></figure>
</li>
</ul>
</li>
<li><p>小总结：</p>
<ul>
<li>r_ 列合并 列个数相同 才能合并</li>
<li>c_ 行合并 行个数相同 才能合并</li>
<li>否则报错</li>
</ul>
</li>
</ul>
<h2 id="展示"><a href="#展示" class="headerlink" title="展示"></a>展示</h2><ul>
<li>存放后展示</li>
</ul>
<h3 id="展示前几行"><a href="#展示前几行" class="headerlink" title="展示前几行"></a>展示前几行</h3><ul>
<li>语法:—–&gt; <code>data.head()</code></li>
</ul>
<h3 id="展示后几行"><a href="#展示后几行" class="headerlink" title="展示后几行"></a>展示后几行</h3><ul>
<li>语法:—–&gt; <code>data.tail()</code></li>
</ul>
<h3 id="展示前几行-1"><a href="#展示前几行-1" class="headerlink" title="展示前几行"></a>展示前几行</h3><ul>
<li>语法:—–&gt; <code>data.head(数值)</code></li>
</ul>
<h3 id="展示后几行-1"><a href="#展示后几行-1" class="headerlink" title="展示后几行"></a>展示后几行</h3><ul>
<li>语法:—–&gt; <code>data.tail(数值)</code></li>
</ul>
<h2 id="arrary和-asarrary"><a href="#arrary和-asarrary" class="headerlink" title="arrary和 asarrary"></a><code>arrary</code>和 <code>asarrary</code></h2><ul>
<li>区别：<ul>
<li><code>array</code>和<code>asarray</code>都可以将结构数据转化为<code>ndarray</code>，但是主要区别就是当数据源是<code>ndarray</code>时，<code>array</code>仍然会<code>copy</code>出一个副本，占用新的内存，但<code>asarray</code>不会</li>
</ul>
</li>
</ul>
<h2 id="info"><a href="#info" class="headerlink" title="info()"></a><code>info()</code></h2><ul>
<li><code>DataFrame</code>数据的简明摘要</li>
</ul>
<h1 id="CSV"><a href="#CSV" class="headerlink" title="CSV"></a>CSV</h1><h3 id="读取csv和改写csv编码格式"><a href="#读取csv和改写csv编码格式" class="headerlink" title="读取csv和改写csv编码格式"></a>读取csv和改写csv编码格式</h3><ul>
<li>读取文件时，因为python3的原因，默认<code>utf-8</code>，其他格式指定解码<code>encoding=</code><ul>
<li><code>data = pd.read_csv(&#39;51job.csv&#39;,encoding=&#39;ANSI&#39;)</code> 读文件 默认</li>
<li><code>data=pd.read_csv(&#39;51job.csv&#39;,encoding=&#39;utf-8&#39;)</code> 读文件</li>
</ul>
</li>
<li>每次想保存修改数据或修改编码格式，执行以下类型格式代码：<ul>
<li>要在<code>参数括号内</code>加入<code>inplace=True</code>确认修改原数据的参数值</li>
<li><code>data.to_csv(&#39;51job.csv&#39;,encoding=&#39;ANSI&#39;)</code> 写入编码格式</li>
<li><code>data.to_csv(&#39;51job.csv&#39;,encoding=&#39;utf-8&#39;)</code> 改入写编码格式</li>
<li>改写后， 只能以修改后编码格式读取，除非重新改动写入新的编码格式</li>
</ul>
</li>
<li>read_html(‘网址’)<ul>
<li>爬取网站数据<ul>
<li><code>lst = pd.read_html(&#39;http://quote.stockstar.com/stock/sha_3_1_1.html&#39;)</code></li>
</ul>
</li>
<li>写入csv<ul>
<li><code>lst[2].to_csv(&#39;gushihangqing.csv&#39;,mode=&#39;a&#39;,header=None,index=False,encoding=&#39;utf-8&#39;)</code></li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 id="缺失值处理-空值"><a href="#缺失值处理-空值" class="headerlink" title="缺失值处理 (空值)"></a>缺失值处理 (空值)</h2><h3 id="删除-dropna"><a href="#删除-dropna" class="headerlink" title="删除 dropna()"></a>删除 <code>dropna()</code></h3><ul>
<li><code>data.dropna(inplace=True)</code> 删除带有Nan的整行数据 <code>inplace=True</code>修改原数据</li>
</ul>
<h3 id="填充替换-fillna"><a href="#填充替换-fillna" class="headerlink" title="填充替换 fillna()"></a>填充替换 <code>fillna()</code></h3><ul>
<li>直接替换掉 该字段所有空值<ul>
<li><code>data[&#39;某字段&#39;].fillna(&#39;要更新的值&#39;)</code></li>
</ul>
</li>
<li>用平均值替换掉 该字段所有空值 （其他值同理，如：最大值。最小值）<ul>
<li><code>data[&#39;某字段&#39;].fillna(data[&#39;某字段&#39;].mean())</code></li>
</ul>
</li>
</ul>
<h3 id="判断-isnull"><a href="#判断-isnull" class="headerlink" title="判断 isnull()"></a>判断 <code>isnull()</code></h3><ul>
<li><code>data.isnull()</code> 判断是否为空，返回 True 和 False</li>
</ul>
<h2 id="排序-sort"><a href="#排序-sort" class="headerlink" title="排序 sort"></a>排序 <code>sort</code></h2><ul>
<li><h4 id="ascending-表示升"><a href="#ascending-表示升" class="headerlink" title="ascending 表示升"></a>ascending 表示升</h4></li>
<li><h4 id="descending-表示降"><a href="#descending-表示降" class="headerlink" title="descending 表示降"></a>descending 表示降</h4></li>
<li><h4 id="注意在使用sort-index对DataFrame进行排序的时候，不能直接对index和columns都含有的字段进行排序，会报错。"><a href="#注意在使用sort-index对DataFrame进行排序的时候，不能直接对index和columns都含有的字段进行排序，会报错。" class="headerlink" title="注意在使用sort_index对DataFrame进行排序的时候，不能直接对index和columns都含有的字段进行排序，会报错。"></a>注意在使用<code>sort_index</code>对<code>DataFrame</code>进行排序的时候，不能直接对<code>index</code>和<code>columns</code>都含有的字段进行排序，会报错。</h4></li>
<li><p>直接以索引排序</p>
<ul>
<li><code>data.sort_index(axis=0,ascending=True)</code></li>
<li>参数<strong>axis</strong>只有两个值，分别是<strong>0</strong>和<strong>1</strong>，<ul>
<li>而 <strong>df中只有两个index</strong> 分别是<ul>
<li><strong>表最左一列的时间</strong> (左侧标头)</li>
<li><strong>表最上一行的ABCDE</strong> (头部标头)</li>
<li>axis=0 对应的是对左边一列的index进行排序</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li><p>以某个字段的values值排序 即：按照‘列名’排序（多列可用 [‘a’,’b’…. ]），默认升序</p>
<ul>
<li><code>data.sort_values(by=&#39;某字段&#39;,ascending=False)</code></li>
<li>by 参数的作用是针对某一（些）列进行排序（不能对行使用 by 参数）</li>
</ul>
</li>
</ul>
<h2 id="loc-和-iloc"><a href="#loc-和-iloc" class="headerlink" title="loc 和 iloc"></a><code>loc</code> 和 <code>iloc</code></h2><h3 id="loc-通过行标签索引行数据"><a href="#loc-通过行标签索引行数据" class="headerlink" title="loc 通过行标签索引行数据"></a><code>loc</code> 通过行标签索引行数据</h3><ul>
<li><code>data.loc[3]</code></li>
<li><code>data.loc[:3]</code></li>
<li><code>data.loc[::2]</code></li>
</ul>
<h3 id="iloc-通过行号索引行数据"><a href="#iloc-通过行号索引行数据" class="headerlink" title="iloc 通过行号索引行数据"></a><code>iloc</code> 通过行号索引行数据</h3><ul>
<li><code>data.iloc[2]</code></li>
<li><code>data.iloc[:2]</code></li>
<li><code>data.iloc[::2]</code></li>
</ul>
<h3 id="loc-和-iloc区别"><a href="#loc-和-iloc区别" class="headerlink" title="loc 和 iloc区别"></a><code>loc</code> 和 <code>iloc</code>区别</h3><ul>
<li><h3 id="区别："><a href="#区别：" class="headerlink" title="区别："></a>区别：</h3><ul>
<li>不变动的情况，感觉没啥区别</li>
<li>但给标签改索引</li>
<li>data.index = range(10,26) # 给数据标签加索引</li>
<li>然后 就可以和感受到，差别</li>
</ul>
</li>
</ul>
<h2 id="比较"><a href="#比较" class="headerlink" title="比较"></a>比较</h2><ul>
<li>条件就是运用比较运算符比较</li>
<li>单个条件<ul>
<li><code>data[data[&#39;salary&#39;]&gt;1002]</code></li>
</ul>
</li>
<li>多个条件<ul>
<li><code>data[data[&#39;salary&#39;]&gt;1002][data[&#39;salary&#39;]&lt;1008]</code></li>
<li><code>data[(data[&#39;salary&#39;]&gt;1002)&amp;(data[&#39;salary&#39;]&lt;1008)&amp;(data[&#39;date&#39;]==&#39;4月2日&#39;)]</code></li>
</ul>
</li>
</ul>
<h2 id="替换"><a href="#替换" class="headerlink" title="替换"></a>替换</h2><ul>
<li>单个值替换单个值<ul>
<li><code>data.replace(要替换的值,更新的值)</code></li>
</ul>
</li>
<li>多个值替换单个值<ul>
<li><code>data.replace([要替换的值,要替换的值...],更新的值)</code></li>
</ul>
</li>
<li>多个值替换多个值<ul>
<li><code>data.replace([要替换的值,要替换的值...],[更新的值,更新的值...])</code></li>
</ul>
</li>
</ul>
<h2 id="数据"><a href="#数据" class="headerlink" title="数据"></a>数据</h2><ul>
<li><p>数据集</p>
</li>
<li><ul>
<li>特征</li>
<li>标签</li>
</ul>
</li>
</ul>

    </div>

    

    

    <!-- Comments -->
    

</div>
        </section>

    </div>
</div>


</div>

<!-- Footer -->
<div class="push"></div>

<footer class="footer-content">
    <div class="container">
        <div class="row">
            <div class="col-xs-12 col-sm-12 col-md-6 col-lg-6 footer-about">
                <h2>About</h2>
                <p>
                    This theme was developed by <a href="https://github.com/klugjo">Jonathan Klughertz</a>. The source code is available on Github. Create Websites. Make Magic.
                </p>
            </div>
            
    <div class="col-xs-6 col-sm-6 col-md-3 col-lg-3 recent-posts">
        <h2>Recent Posts</h2>
        <ul>
            
            <li>
                <a class="footer-post" href="/blog/2019/08/12/如何快速搭建hexo技术博客/">如何快速搭建hexo技术博客</a>
            </li>
            
            <li>
                <a class="footer-post" href="/blog/2019/08/12/二进制字典数据处理/">二进制字典数据处理</a>
            </li>
            
            <li>
                <a class="footer-post" href="/blog/2019/08/12/Dos-命令手记/">Dos-命令手记</a>
            </li>
            
            <li>
                <a class="footer-post" href="/blog/2019/08/12/Mysql-命令手记/">Mysql-命令手记</a>
            </li>
            
        </ul>
    </div>



            
        </div>
        <div class="row">
            <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
                <ul class="list-inline footer-social-icons">
                    
                    <li class="list-inline-item">
                        <a href="https://github.com/klugjo/hexo-theme-alpha-dust">
                            <span class="footer-icon-container">
                                <i class="fa fa-github"></i>
                            </span>
                        </a>
                    </li>
                    
                    
                    <li class="list-inline-item">
                        <a href="https://twitter.com/?lang=en">
                            <span class="footer-icon-container">
                                <i class="fa fa-twitter"></i>
                            </span>
                        </a>
                    </li>
                    
                    
                    <li class="list-inline-item">
                        <a href="https://www.facebook.com/">
                            <span class="footer-icon-container">
                                <i class="fa fa-facebook"></i>
                            </span>
                        </a>
                    </li>
                    
                    
                    <li class="list-inline-item">
                        <a href="https://www.instagram.com/">
                            <span class="footer-icon-container">
                                <i class="fa fa-instagram"></i>
                            </span>
                        </a>
                    </li>
                    
                    
                    <li class="list-inline-item">
                        <a href="https://dribbble.com/">
                            <span class="footer-icon-container">
                                <i class="fa fa-dribbble"></i>
                            </span>
                        </a>
                    </li>
                    
                    
                    <li class="list-inline-item">
                        <a href="https://plus.google.com/">
                            <span class="footer-icon-container">
                                <i class="fa fa-google-plus"></i>
                            </span>
                        </a>
                    </li>
                    
                    
                    <li class="list-inline-item">
                        <a href="https://www.behance.net/">
                            <span class="footer-icon-container">
                                <i class="fa fa-behance"></i>
                            </span>
                        </a>
                    </li>
                    
                    
                    <li class="list-inline-item">
                        <a href="https://500px.com/">
                            <span class="footer-icon-container">
                                <i class="fa fa-500px"></i>
                            </span>
                        </a>
                    </li>
                    
                    
                    <li class="list-inline-item">
                        <a href="mailto:test@example.com">
                            <span class="footer-icon-container">
                                <i class="fa fa-envelope-o"></i>
                            </span>
                        </a>
                    </li>
                    
                    
                    <li class="list-inline-item">
                        <a href="\#">
                            <span class="footer-icon-container">
                                <i class="fa fa-rss"></i>
                            </span>
                        </a>
                    </li>
                    
                </ul>
            </div>
        </div>
        <div class="row">
            <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
                <div class="footer-copyright">
                    @Untitled. All right reserved | Design & Hexo <a href="http://www.codeblocq.com/">Jonathan Klughertz</a>
                </div>
            </div>
        </div>
    </div>
</footer>

<!-- After footer scripts -->

<!-- jQuery -->
<script src="//code.jquery.com/jquery-2.1.4.min.js"></script>

<!-- Tween Max -->
<script src="//cdnjs.cloudflare.com/ajax/libs/gsap/1.18.5/TweenMax.min.js"></script>

<!-- Gallery -->
<script src="//cdnjs.cloudflare.com/ajax/libs/featherlight/1.3.5/featherlight.min.js" type="text/javascript" charset="utf-8"></script>

<!-- Custom JavaScript -->
<script src="/blog/js/main.js"></script>

<!-- Disqus Comments -->



</body>

</html>